/**
 *
 * @description:评论
 * @author:junyong.hong
 * @createTime:2018/1/13
 * @version:1.0.0.0
 * @history:
 *    1、
 *    2、
 *
 */

var prepage = 5;//每页显示条数
var page = 1;//当前第一页
var pages = 0;//总页数
var comments = [];



//提交评论
$('#messageBtn').on('click',function () {
    // .trim().replace(/[\r\n]/g,"") 除去前后空格，内容空格
    var contentIdVal = $('#contentId').val(),
        usernameVal = $('#username').val(),
        contentVal = $('#messageContent').val().trim().replace(/[\r\n]/g,""),
        emailVal = $('#email').val(),
        urlVal = $('#url').val();

    var reference = '';
    if(contentVal.indexOf('</blockquote>') > 1 ){
        reference = contentVal.substring(0,contentVal.indexOf('</blockquote>') + 13);
        contentVal = contentVal.substring(contentVal.indexOf('</blockquote>') + 13)
    }

    // contentVal = '<div class="currentContent">'+ contentVal +'</div>'

    // 判断用户是否勾选记住信息
    var isChecked = false;
    if($('#info').is(':checked')){// 用户选择记住信息
        isChecked = true;
    }

    $.ajax({
        type:'POST',
        url:'/api/comment/postComment',
        data:{
            contentid:contentIdVal,
            username:usernameVal,
            content:contentVal,
            reference:reference,
            email:emailVal,
            url:urlVal,
            isChecked:isChecked
        },
        success:function (responseData) {
            var code = responseData.code;
            var message = responseData.message;
            if(code == 1 || code == 2 || code == 3){
                alert(message);
                return;
            }

            $('#messageContent').val('');

            comments = responseData.data.messages.reverse();    //.reverse()对数据进行反转
            renderComment();
        }
    });

    //保存到缓存中
    // var userInfo = new Object;
    // if($('#info').is(':checked')){// 用户选择记住信息
    //     userInfo.username = usernameVal;
    //     userInfo.content = contentVal;
    //     userInfo.email = emailVal;
    //     userInfo.url = urlVal;
    //
    //     // localStorage.setItem('userInfo', JSON.stringify((userInfo)));
    // }

    // (保留，不能删除（旧版：评论在文章下））
    // var contentIdVal = $('#contentId').val();
    // if(contentIdVal == undefined || contentIdVal == ''){
    //     return;
    // }
    // $.ajax({
    //     type:'POST',
    //     url:'/api/comment/postComment',
    //     data:{
    //         contentid:contentIdVal,
    //         content:$('#messageContent').val()
    //     },
    //     success:function (responseData) {
    //         $('#messageContent').val('');
    //
    //         //.reverse()对数据进行反转
    //         comments = responseData.data.comments.reverse();
    //         renderComment();
    //     }
    // });
});


//每次页面重载的时候获取一下该文章的所有评论
$.ajax({
    type:'get',
    url:'/api/comment',
    dataType:'json',
    data:{
        contentid:$('#contentId').val()
    },
    success:function (responseData) {
        if(!(responseData.data == undefined)){//有数据的情况下
            comments = responseData.data.reverse();
            //.reverse()对数据进行反转
        }

        if(responseData.cookiesJson.isChecked === 'true') {//有记住个人信息的情况下
            $('#username').val(responseData.cookiesJson.username);
            $('#email').val(responseData.cookiesJson.email);
            $('#url').val(responseData.cookiesJson.url);

            $('#info').prop('checked', true);
        }



        // 读取缓存里的信息
        // var userInfo = localStorage.getItem('userInfo');
        // if(!userInfo == null || !userInfo == ''){
        //     var data = JSON.parse(userInfo);
        //     $('#username').val(data.username);
        //     $('#email').val(data.email);
        //     $('#url').val(data.url);
        // }


        renderComment();
    }
});

/**
 * 分页
 */
$('.pager').delegate('a','click',function () {
    if($(this).parent().hasClass('previous')){
        // alert('上一页');
        page--;
    }else{
        // alert('下一页');
        page++;
    }
    renderComment();
});


/**
 * 遍历评论
 * @param comments
 */
var content = [];
function renderComment() {
    // $('.messageList').empty();

    $('#messageCount').html(comments.length);

    pages = Math.max(Math.ceil(comments.length / prepage),1);
    var start = Math.max(0,(page-1) * prepage);
    var end = Math.min(start + prepage, comments.length);

    // if(end > comments.length){
    //     end = comments.length;
    // }

    var $lis = $('.pager li');
    $lis.eq(1).html( page + '/' +  pages);

    if(page <= 1){
        page = 1;
        $lis.eq(0).html('<span>没有上一页了</span>');
    }else{
        $lis.eq(0).html('<a href="javascript:;">上一页</a>');
    }
    if(page >= pages ){
        page = pages;
        $lis.eq(2).html('<span>没有下一页了</span>');
    }else{
        $lis.eq(2).html('<a href="javascript:;">下一页</a>');
    }

    if(comments.length == 0){
        $('.messageList').html('<div class="messageBox"><p>还没有留言</p></div>');
    }else{
        var html = '';

        for(var i = start;i<end;i++){
            content[i] = comments[i].content;
            html += '<div class="messageBox" style="padding: 2rem 0;border-bottom: 1px dashed #e3e3e3;">'+
                        '<div class="name clear">'+
                            '<p class="fl">' + comments[i].username +'&nbsp;说：</p>'+
                            '<p>'+ comments[i].reference +'</p>'+
                            '<p>'+ comments[i].content +'</p>'+
                            '<p class="fr" style="text-align: right;">&nbsp;'+ formatDate(comments[i].postTime) +'&nbsp;|&nbsp;#&nbsp;|&nbsp;<a href="javascript:;" onclick="reference(\''+comments[i].username+'\',\''+ comments[i].content +'\')">引用</a></p>'+
                            // '<p class="fr" style="text-align: right;">&nbsp;'+ formatDate(comments[i].postTime) +'&nbsp;|&nbsp;#&nbsp;|&nbsp;<a href="javascript:;" onclick=reference("'+ i +'","'+comments[i].username+'")>引用</a></p>'+
                        '</div>'+
                    '</div>';
        }
        $('.messageList').html(html);
    }
}

/**
 * 引用评论，填写到留言板下
 * @param username 用户名
 * @param content 内容
 */
function reference(username,content){
    var str = '<blockquote>'+
                '<pre>引用 ' + username + ' 的发言：' + content + '</pre>' +
            '</blockquote>';

    $('#messageContent').val(str)
}

/**
 * 时间格式化
 * @param d
 * @returns {string}
 */
function formatDate(d) {
    var date1 = new Date(d);
    return date1.getFullYear() + '年' + (date1.getMonth()+1) + '月' + date1.getDate() + '日' +
        date1.getHours() + ':' + date1.getMinutes() + ':' + date1.getSeconds();
}

